﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BUS;
using DTO;
namespace GUI
{
    public partial class FormChonMonAn1 : Form
    {
        public int ID_BAN_AN = 0;
        public FormChonMonAn1()
        {
            InitializeComponent();
            // Hiện Bàn Ăn Hiện Tại
            BanAnBUS baBUS = new BanAnBUS();
            BanAnDTO banAn = new BanAnDTO();
            banAn = baBUS.LayBanAn(FormLapPhieuHoaDon.ID_BAN_AN);
            ID_BAN_AN = FormLapPhieuHoaDon.ID_BAN_AN;
            label8.Text = "Bàn: "+ banAn.Ten_Ban_An;
            //loai mon an
            LoaiMonAnBUS loai = new LoaiMonAnBUS();
            List<LoaiMonAnDTO> lm = new List<LoaiMonAnDTO>();
            lm = loai.LayDanhSachLoaiMonAn();
            //
            LoaiMonAnDTO tcm = new LoaiMonAnDTO();
            tcm.Id_Loai = -1;
            tcm.Ten_Mon_An = "Tất cả";
            lm.Insert(0, tcm);
            //
            cbloai.DataSource = lm;
            cbloai.DisplayMember = "Ten_Mon_An";
            cbloai.ValueMember="Id_Loai";
            
            
            //loai menu
            LoaiMenuBUS loaimenu = new LoaiMenuBUS();
            List<LoaiMenuDTO> lmn = new List<LoaiMenuDTO>();
            lmn = loaimenu.LayDanhSachLoaiMenu();
            LoaiMenuDTO tcmn = new LoaiMenuDTO();
            tcmn.Id_Loai_Menu = -1;
            tcmn.Ten_Loai_Menu = "Tất cả";
            lmn.Insert(0, tcmn);
            cbloaimenu.DataSource = lmn;
            cbloaimenu.DisplayMember = "Ten_Loai_Menu";
            cbloaimenu.ValueMember = "Id_Loai_Menu";
            // gia tu
            //int k = cbgiatu.Items.Count();
            cbgiatu.Items.Add("0");
            cbgiatu.Items.Add("20.000");
            cbgiatu.Items.Add("30.000");
            cbgiatu.Items.Add("50.000");
            cbgiatu.Items.Add("100.000");
            //gia den
            cbgiaden.Items.Add("100.000");
            cbgiaden.Items.Add("500.000");
            cbgiaden.Items.Add("1.000.000");
            cbgiaden.Items.Add("5.000.000");
            cbgiaden.Items.Add("10.000.000");
        }
        private void btthoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void cbloai_SelectedIndexChanged(object sender, EventArgs e)
        {
           
        }

        private void cbloai_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            
        }

        private void dgtracuu_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void cbloaimenu_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbgiatu_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void bttim_Click(object sender, EventArgs e)
        {
            MonAnBUS monan = new MonAnBUS();
            dtg_tra_cuu.Rows.Clear();
            string ten = txttenmon.Text;
            if (ten.Length == 0)
            {
                ten = null;
            }
            int loaimon =int.Parse(cbloai.SelectedValue.ToString());
            int loaimenu=int.Parse(cbloaimenu.SelectedValue.ToString());
            //long giatu=0;
            long giaden=-1;
            long giatu = -1;
            function fc=new function();
            int kt = 0;
            if (cbgiatu.SelectedIndex ==-1)
            {
                if (fc.IsNumber(cbgiatu.Text))
                {
                    if (cbgiatu.Text.Length == 0 || cbgiatu.Text == null)
                    {
                        giatu = -1;
                    }
                    else
                        giatu = monan.chuyendoi(cbgiatu.Text);
                }
                else
                {
                    MessageBox.Show("Vui lòng nhập nguyên");
                    kt = -1;
                }
            }
            if (cbgiaden.SelectedIndex == -1)
            {
                if (fc.IsNumber(cbgiaden.Text))
                {
                    if (cbgiaden.Text.Length == 0 || cbgiaden.Text == null)
                    {
                        giaden = -1;
                    }
                    else
                        giaden = monan.chuyendoi(cbgiaden.Text);
                }
                else
                {
                    MessageBox.Show("Vui lòng nhập số nguyên");
                    kt = -1;
                }
            }
            if (kt >= 0)
            {
                List<MonAnDTO> tracuu = monan.TraCuuMonAn(ten, loaimon, loaimenu, giatu, giaden);
                //
                LoaiMonAnBUS loai = new LoaiMonAnBUS();
                LoaiMenuBUS mn = new LoaiMenuBUS();
                //
                for (int i = 0; i < tracuu.Count; i++)
                {
                    dtg_tra_cuu.Rows.Add(i + 1,tracuu[i].Id_Mon_An, tracuu[i].Ten_Mon_An, loai.LayLoaiMonAn(tracuu[i].Id_Loai_Mon_An), mn.LayLoaiMenu(tracuu[i].Id_Loai_Menu), string.Format("{0:0,0}", tracuu[i].Don_Gia));
                }
            }
        }

        private void txttenmon_TextChanged(object sender, EventArgs e)
        {

        }
        public static List<MonAnDTO> listChonMonAn;
        private void btnXacNhan_Click(object sender, EventArgs e)
        {
            listChonMonAn = new List<MonAnDTO>();
            // Lấy Danh Sách Món Ăn mà Khác Đã Chọn
            List<DataGridViewRow> rowsToAdd = new List<DataGridViewRow>();
            foreach (DataGridViewRow row in dtg_tra_cuu.Rows)
            {
                DataGridViewCheckBoxCell chk = row.Cells[6] as DataGridViewCheckBoxCell;
                try
                {
                    if (Convert.ToBoolean(chk.Value) == true)
                        rowsToAdd.Add(row);
                }catch(Exception ex)
                {
                    MessageBox.Show("Vui Lòng Chọn Món Rồi Nhập Số Lượng!");
                    return;
                }
                
            }
     
            try
            {
     
                
                foreach (DataGridViewRow row in rowsToAdd)
                {

                    MonAnDTO singleRecord = new MonAnDTO();
                    singleRecord.Id_Mon_An = Convert.ToInt32(row.Cells[1].Value.ToString());
                    singleRecord.Ten_Mon_An = row.Cells[2].Value.ToString();
                    singleRecord.Don_Gia = MonAnBUS.LayDonGia(Convert.ToInt32(row.Cells[1].Value));
                    singleRecord.So_Luong = Convert.ToInt32(row.Cells[7].Value.ToString());
                    listChonMonAn.Add(singleRecord);
                }
              
            }catch(Exception ex)
            {
                MessageBox.Show("Vui Lòng Chọn Món Rồi Nhập Số Lượng!");
                return;
            }

            // Ghi dữ liệu hóa đơn tạm thời
            foreach( MonAnDTO singleRecord in listChonMonAn )
            {
                TamTinhBUS ttBUS = new TamTinhBUS();
                ttBUS.GhiXuongBangTamTinh(singleRecord,ID_BAN_AN);
            }

            // Cập Nhập Trạng Thái Bàn Ăn là Đang Có Khách
            BanAnBUS baBUS = new BanAnBUS();
            baBUS.CapNhapTrangThaiBanAn(ID_BAN_AN,1);
            this.Close();
            FormXemTinhTrangBan ba = new FormXemTinhTrangBan();
            ba.Show();
            this.Close();
            
        }

        private void FormTraCuuMonAn_Load(object sender, EventArgs e)
        {

        }

        private void label8_Click(object sender, EventArgs e)
        {

        }
    }
}
